#pragma once

#include "KnowledgeBaseWriterTextLocalizationInterface.h"
#include "WorkModeMenuTextLocalizationInterface.h"

class LocalizationInterface;
typedef Factory < LocalizationInterface >::Ptr LocalizationInterfacePtr;

LocalizationInterfacePtr Localization ();

class LocalizationInterface
{
public:
	virtual ~LocalizationInterface () {}
	virtual WorkModeMenuTextLocalizationInterfacePtr WorkModeMenuTextLocalization () = 0;
	virtual KnowledgeBaseWriterTextLocalizationInterfacePtr KnowledgeBaseWriterTextLocalization () = 0;
	virtual std::string SelectedCreateNew () = 0;
	virtual std::string SelectedOpenExisting () = 0;
	virtual std::string SelectedChangeDesignation () = 0;
	virtual std::string SelectedMakeCopy () = 0;
	virtual std::string SelectedQuit () = 0;
	virtual std::string SelectedDeleteToTrashCan () = 0;
	virtual std::string SelectedRestoreFromTrashCan () = 0;
	virtual std::string SelectedExtractFromPackage () = 0;
	virtual std::string SelectedImportFromFoxPro () = 0;
	virtual std::string SelectedImportFromOracle () = 0;
	virtual std::string EnterCommand () = 0;
	virtual std::string SampleCommand () = 0;
	virtual std::string PhrasesFile () = 0;
	virtual std::string AssumptionFailed () = 0;
	virtual std::string AssumptionFile () = 0;
	virtual std::string AssumptionLine () = 0;
	virtual std::string AssumptionSuite () = 0;
	virtual std::string AssumptionTest () = 0;
	virtual std::string AssumptionsSuccessfullyAsserted ( int assumptionsCount ) = 0;
	virtual std::string AssumptionsCountMismatch ( int actualCount, int expectedCount ) = 0;
protected:
	static void SelectLocalization ( LocalizationInterfacePtr localization );
};
